The Internet is a vast, world wide collection of computer networks, including millions of computers. Every day the information content and number of users accessing the Internet grows. The popularity and power of the Internet has even spawned new forms of computer networks called Intranets that apply the networking and information content standards used on the Internet to networks for organizations.
With this intense focus on the Internet and Internet-related standards, there is an increasing demand for applications that can access the Internet and take advantage of Internet related standards. This demand for Internet-enabled applications is making the Internet and Internet standards a key platform for new application software development.
A particularly important part of the Internet is the World Wide Web. The World Wide Web is comprised of a number of computers scattered throughout the Internet that provide information in the form of graphical documents called Web pages. The growth of the Internet, and particularly the World Wide Web, have accelerated the development of new standards and programming languages for creating content for the World Wide Web such as the Hyper Text Markup Language (HTML), the Virtual Reality Modeling Language (VRML), the Java.TM. programming language, and scripting languages developed for use in HTML documents.
From a user's point of view, access to the Internet and its services typically are accomplished by invoking a network application program such as a network browser. The network application program acts as an interface between the user and the Internet. Network application programs are typically "client" applications that accept commands from the user and obtain Internet data and services by sending requests to "server" applications on other computers at other locations on the Internet.
While there are a number of different types of network application programs, perhaps the most important application for retrieving and viewing information from the Internet is the network browser. The network browser is commonly referred to today as a web browser because of its ability to retrieve and display Web pages from the World Wide Web. Some examples of commercially available browsers include the Internet Explorer.RTM. by Microsoft Corporation of Redmond, Washington, Netscape.RTM. Navigator by Netscape Communications of Mountain View, California, and Mosaic developed at NCSA, University of Illinois.
To retrieve information from computers on the Internet, web browsers send network requests via the File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP), Hyper Text Transfer Protocol (HTTP), Gopher document protocol and others. A web browser and server applications use these network requests to exchange data across the Internet, or some other computer network HTTP is a protocol used to access data on the World Wide Web. In particular, web browsers use HTTP to retrieve documents created in the HTML from Web servers on the Internet, in intranets, or from the user's own local file system on the hard drive. The location of resource such as an HTML document is defined by an address called a URL ("Uniform Resource Locater"). Web browsers use the URL to find and fetch resources from the Internet and the World Wide Web.
HTML allows embedded "links" to point to other data or documents, which may be found on the local computer or other remote Internet host computers. When the user selects an HTML document link, the web browser can retrieve the document or data that the link refers to by using HTTP, FTP, Gopher, or other Internet application protocols. This feature enables the user to browse linked information by selecting links embedded in an HTML document. A common feature of web browsers is the ability to save navigation history so that the user can move forward and backward across the Web pages that he or she has already retrieved.
As new standards are developed to make the content of Web pages more compelling, Web browsers have been upgraded to support them. This has made the Web browser the key application for accessing information from the Internet and from networks based on Internet standards. At the same time, the amount of expertise needed to create a fully functional browser has made it difficult for developers to create new applications that can take advantage of new forms of Web content developed for the Internet.
With the growing complexity of the browser, it is not possible for typical developers to incorporate the functions of a Web browser into their applications. Rather than attempt to make a Web browser, one alternative for the application developer is to try to build an application program that launches a stand-alone Web browser, running in the same machine as the application program, to provide access to Web content.
One way to accomplish this is to use the features of a multi-tasking operation system like the Windows.RTM. operating system to launch a stand-alone browser from within the application program. In this approach, the application program issues a command to the operating system to launch the Web browser. This is not an adequate solution in many cases because ii does not give the application program control of specific functions within the Web browser. Once the operating system has launched the Web browser, the application is no longer in control. The application program has a limited ability, it any, to control how the Web browser retrieves Web content, how the browser interacts with the Web content, and how the Web browser presents the Web content to the user. In particular, the application program cannot instruct the Web browser to navigate to a series of different Web sites and retain navigation history, it cannot access the content within a Web page such as a script program, and it cannot control or alter how the Web browser presents the content of a Web page or several Web pages.
Some stand-alone browsers attempt to address these limitations by supporting an interface for Dynamic Data Exchange (DDE) called the Spyglass DDE interface. This DDE interface makes it possible for a separate application program to automate a stand-alone web browser in a limited way. Through this interface, however, the Web browser always appears as a separate application with a separate window including all of its own user interface controls. Since the stand-alone web browser is displayed in a separate window, it can become hidden behind other windows in a windowing user interface.